DigiOffice Gateway Web Services

<back to all web services

ProcessProjectRequestMessage

Requires Authentication
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class Environment implements IConvertible
{
    String? Title;
    String? Code;

    Environment({this.Title,this.Code});
    Environment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Title = json['Title'];
        Code = json['Code'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Title': Title,
        'Code': Code
    };

    getTypeName() => "Environment";
    TypeContext? context = _ctx;
}

class Party implements IConvertible
{
    String? Title;
    String? Code;
    String? Version;
    Environment? Environment;

    Party({this.Title,this.Code,this.Version,this.Environment});
    Party.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Title = json['Title'];
        Code = json['Code'];
        Version = json['Version'];
        Environment = JsonConverters.fromJson(json['Environment'],'Environment',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Title': Title,
        'Code': Code,
        'Version': Version,
        'Environment': JsonConverters.toJson(Environment,'Environment',context!)
    };

    getTypeName() => "Party";
    TypeContext? context = _ctx;
}

class Header implements IConvertible
{
    String? MessageID;
    DateTime? Timestamp;
    Party? Sender;
    Party? Recipient;
    dynamic? RequestMessageID;

    Header({this.MessageID,this.Timestamp,this.Sender,this.Recipient,this.RequestMessageID});
    Header.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        MessageID = json['MessageID'];
        Timestamp = JsonConverters.fromJson(json['Timestamp'],'DateTime',context!);
        Sender = JsonConverters.fromJson(json['Sender'],'Party',context!);
        Recipient = JsonConverters.fromJson(json['Recipient'],'Party',context!);
        RequestMessageID = JsonConverters.fromJson(json['RequestMessageID'],'dynamic',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'MessageID': MessageID,
        'Timestamp': JsonConverters.toJson(Timestamp,'DateTime',context!),
        'Sender': JsonConverters.toJson(Sender,'Party',context!),
        'Recipient': JsonConverters.toJson(Recipient,'Party',context!),
        'RequestMessageID': JsonConverters.toJson(RequestMessageID,'dynamic',context!)
    };

    getTypeName() => "Header";
    TypeContext? context = _ctx;
}

class Reference implements IConvertible
{
    String? GlobalID;
    String? Title;

    Reference({this.GlobalID,this.Title});
    Reference.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        Title = json['Title'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'Title': Title
    };

    getTypeName() => "Reference";
    TypeContext? context = _ctx;
}

class Address implements IConvertible
{
    String? AddressLine1;
    String? AddressLine2;
    String? HouseNumber;
    String? HouseNumberSuffix;
    String? PostalCode;
    String? City;
    Reference? Country;

    Address({this.AddressLine1,this.AddressLine2,this.HouseNumber,this.HouseNumberSuffix,this.PostalCode,this.City,this.Country});
    Address.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AddressLine1 = json['AddressLine1'];
        AddressLine2 = json['AddressLine2'];
        HouseNumber = json['HouseNumber'];
        HouseNumberSuffix = json['HouseNumberSuffix'];
        PostalCode = json['PostalCode'];
        City = json['City'];
        Country = JsonConverters.fromJson(json['Country'],'Reference',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AddressLine1': AddressLine1,
        'AddressLine2': AddressLine2,
        'HouseNumber': HouseNumber,
        'HouseNumberSuffix': HouseNumberSuffix,
        'PostalCode': PostalCode,
        'City': City,
        'Country': JsonConverters.toJson(Country,'Reference',context!)
    };

    getTypeName() => "Address";
    TypeContext? context = _ctx;
}

class MailingAddress implements IConvertible
{
    String? POBox;
    String? PostalCode;
    String? City;
    Reference? Country;

    MailingAddress({this.POBox,this.PostalCode,this.City,this.Country});
    MailingAddress.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        POBox = json['POBox'];
        PostalCode = json['PostalCode'];
        City = json['City'];
        Country = JsonConverters.fromJson(json['Country'],'Reference',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'POBox': POBox,
        'PostalCode': PostalCode,
        'City': City,
        'Country': JsonConverters.toJson(Country,'Reference',context!)
    };

    getTypeName() => "MailingAddress";
    TypeContext? context = _ctx;
}

class Project implements IConvertible
{
    String? GlobalID;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;
    String? Code;
    String? Name;
    String? Description1;
    String? Description2;
    Address? Address;
    MailingAddress? MailingAddress;
    Reference? ProjectCategoryReference;
    Reference? ProjectTypeReference;
    Reference? ProjectStatusReference;
    DateTime? StartDate;
    DateTime? EndDate;
    DateTime? CompletionDate;
    bool? Inactive;
    String? Website;
    bool? IsTemplateProject;
    List<CustomField>? CustomFields;

    Project({this.GlobalID,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy,this.Code,this.Name,this.Description1,this.Description2,this.Address,this.MailingAddress,this.ProjectCategoryReference,this.ProjectTypeReference,this.ProjectStatusReference,this.StartDate,this.EndDate,this.CompletionDate,this.Inactive,this.Website,this.IsTemplateProject,this.CustomFields});
    Project.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        Code = json['Code'];
        Name = json['Name'];
        Description1 = json['Description1'];
        Description2 = json['Description2'];
        Address = JsonConverters.fromJson(json['Address'],'Address',context!);
        MailingAddress = JsonConverters.fromJson(json['MailingAddress'],'MailingAddress',context!);
        ProjectCategoryReference = JsonConverters.fromJson(json['ProjectCategoryReference'],'Reference',context!);
        ProjectTypeReference = JsonConverters.fromJson(json['ProjectTypeReference'],'Reference',context!);
        ProjectStatusReference = JsonConverters.fromJson(json['ProjectStatusReference'],'Reference',context!);
        StartDate = JsonConverters.fromJson(json['StartDate'],'DateTime',context!);
        EndDate = JsonConverters.fromJson(json['EndDate'],'DateTime',context!);
        CompletionDate = JsonConverters.fromJson(json['CompletionDate'],'DateTime',context!);
        Inactive = json['Inactive'];
        Website = json['Website'];
        IsTemplateProject = json['IsTemplateProject'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy,
        'Code': Code,
        'Name': Name,
        'Description1': Description1,
        'Description2': Description2,
        'Address': JsonConverters.toJson(Address,'Address',context!),
        'MailingAddress': JsonConverters.toJson(MailingAddress,'MailingAddress',context!),
        'ProjectCategoryReference': JsonConverters.toJson(ProjectCategoryReference,'Reference',context!),
        'ProjectTypeReference': JsonConverters.toJson(ProjectTypeReference,'Reference',context!),
        'ProjectStatusReference': JsonConverters.toJson(ProjectStatusReference,'Reference',context!),
        'StartDate': JsonConverters.toJson(StartDate,'DateTime',context!),
        'EndDate': JsonConverters.toJson(EndDate,'DateTime',context!),
        'CompletionDate': JsonConverters.toJson(CompletionDate,'DateTime',context!),
        'Inactive': Inactive,
        'Website': Website,
        'IsTemplateProject': IsTemplateProject,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!)
    };

    getTypeName() => "Project";
    TypeContext? context = _ctx;
}

class ProjectResponseMessage implements IConvertible
{
    Header? Header;
    Reference? ProjectReference;
    Project? Project;
    List<HousingType>? HousingTypes;
    List<ConstructionBlock>? ConstructionBlocks;
    List<ConstructionNumber>? ConstructionNumbers;
    List<Document>? Documents;
    List<PurchaseContract>? PurchaseContracts;

    ProjectResponseMessage({this.Header,this.ProjectReference,this.Project,this.HousingTypes,this.ConstructionBlocks,this.ConstructionNumbers,this.Documents,this.PurchaseContracts});
    ProjectResponseMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Header = JsonConverters.fromJson(json['Header'],'Header',context!);
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        Project = JsonConverters.fromJson(json['Project'],'Project',context!);
        HousingTypes = JsonConverters.fromJson(json['HousingTypes'],'List<HousingType>',context!);
        ConstructionBlocks = JsonConverters.fromJson(json['ConstructionBlocks'],'List<ConstructionBlock>',context!);
        ConstructionNumbers = JsonConverters.fromJson(json['ConstructionNumbers'],'List<ConstructionNumber>',context!);
        Documents = JsonConverters.fromJson(json['Documents'],'List<Document>',context!);
        PurchaseContracts = JsonConverters.fromJson(json['PurchaseContracts'],'List<PurchaseContract>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Header': JsonConverters.toJson(Header,'Header',context!),
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'Project': JsonConverters.toJson(Project,'Project',context!),
        'HousingTypes': JsonConverters.toJson(HousingTypes,'List<HousingType>',context!),
        'ConstructionBlocks': JsonConverters.toJson(ConstructionBlocks,'List<ConstructionBlock>',context!),
        'ConstructionNumbers': JsonConverters.toJson(ConstructionNumbers,'List<ConstructionNumber>',context!),
        'Documents': JsonConverters.toJson(Documents,'List<Document>',context!),
        'PurchaseContracts': JsonConverters.toJson(PurchaseContracts,'List<PurchaseContract>',context!)
    };

    getTypeName() => "ProjectResponseMessage";
    TypeContext? context = _ctx;
}

class ProjectRequestMessage implements IConvertible
{
    Header? Header;
    Reference? ProjectReference;
    bool? IncludeHousingTypes;
    bool? IncludeConstructionBlocks;
    bool? IncludeConstructionNumbers;
    bool? IncludeDocuments;
    bool? IncludePurchaseContracts;

    ProjectRequestMessage({this.Header,this.ProjectReference,this.IncludeHousingTypes,this.IncludeConstructionBlocks,this.IncludeConstructionNumbers,this.IncludeDocuments,this.IncludePurchaseContracts});
    ProjectRequestMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Header = JsonConverters.fromJson(json['Header'],'Header',context!);
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        IncludeHousingTypes = json['IncludeHousingTypes'];
        IncludeConstructionBlocks = json['IncludeConstructionBlocks'];
        IncludeConstructionNumbers = json['IncludeConstructionNumbers'];
        IncludeDocuments = json['IncludeDocuments'];
        IncludePurchaseContracts = json['IncludePurchaseContracts'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Header': JsonConverters.toJson(Header,'Header',context!),
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'IncludeHousingTypes': IncludeHousingTypes,
        'IncludeConstructionBlocks': IncludeConstructionBlocks,
        'IncludeConstructionNumbers': IncludeConstructionNumbers,
        'IncludeDocuments': IncludeDocuments,
        'IncludePurchaseContracts': IncludePurchaseContracts
    };

    getTypeName() => "ProjectRequestMessage";
    TypeContext? context = _ctx;
}

class ProcessProjectRequestMessage implements IConvertible
{
    String? InstanceId;
    ProjectRequestMessage? ProjectRequest;

    ProcessProjectRequestMessage({this.InstanceId,this.ProjectRequest});
    ProcessProjectRequestMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        InstanceId = json['InstanceId'];
        ProjectRequest = JsonConverters.fromJson(json['ProjectRequest'],'ProjectRequestMessage',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'InstanceId': InstanceId,
        'ProjectRequest': JsonConverters.toJson(ProjectRequest,'ProjectRequestMessage',context!)
    };

    getTypeName() => "ProcessProjectRequestMessage";
    TypeContext? context = _ctx;
}

class CustomField implements IConvertible
{
    String? Name;
    String? Value;

    CustomField({this.Name,this.Value});
    CustomField.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Name = json['Name'];
        Value = json['Value'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Value': Value
    };

    getTypeName() => "CustomField";
    TypeContext? context = _ctx;
}

class HousingType implements IConvertible
{
    String? GlobalID;
    Reference? ProjectReference;
    String? Code;
    String? Description;
    List<CustomField>? CustomFields;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;

    HousingType({this.GlobalID,this.ProjectReference,this.Code,this.Description,this.CustomFields,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy});
    HousingType.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        Code = json['Code'];
        Description = json['Description'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'Code': Code,
        'Description': Description,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy
    };

    getTypeName() => "HousingType";
    TypeContext? context = _ctx;
}

class ConstructionBlock implements IConvertible
{
    String? GlobalID;
    Reference? ProjectReference;
    String? Code;
    String? Description;
    List<CustomField>? CustomFields;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;

    ConstructionBlock({this.GlobalID,this.ProjectReference,this.Code,this.Description,this.CustomFields,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy});
    ConstructionBlock.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        Code = json['Code'];
        Description = json['Description'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'Code': Code,
        'Description': Description,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy
    };

    getTypeName() => "ConstructionBlock";
    TypeContext? context = _ctx;
}

class ConstructionNumber implements IConvertible
{
    String? GlobalID;
    Reference? ProjectReference;
    Reference? HousingTypeReference;
    Reference? ConstructionBlockReference;
    String? Code;
    String? Description;
    Address? Address;
    bool? RentalHouse;
    String? GuaranteeCertificateNumber;
    bool? Inactive;
    List<CustomField>? CustomFields;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;
    DateTime? ViewingDate;
    bool? ViewingDateSpecified;
    DateTime? DeliveryDate;
    bool? DeliveryDateSpecified;

    ConstructionNumber({this.GlobalID,this.ProjectReference,this.HousingTypeReference,this.ConstructionBlockReference,this.Code,this.Description,this.Address,this.RentalHouse,this.GuaranteeCertificateNumber,this.Inactive,this.CustomFields,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy,this.ViewingDate,this.ViewingDateSpecified,this.DeliveryDate,this.DeliveryDateSpecified});
    ConstructionNumber.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        HousingTypeReference = JsonConverters.fromJson(json['HousingTypeReference'],'Reference',context!);
        ConstructionBlockReference = JsonConverters.fromJson(json['ConstructionBlockReference'],'Reference',context!);
        Code = json['Code'];
        Description = json['Description'];
        Address = JsonConverters.fromJson(json['Address'],'Address',context!);
        RentalHouse = json['RentalHouse'];
        GuaranteeCertificateNumber = json['GuaranteeCertificateNumber'];
        Inactive = json['Inactive'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        ViewingDate = JsonConverters.fromJson(json['ViewingDate'],'DateTime',context!);
        ViewingDateSpecified = json['ViewingDateSpecified'];
        DeliveryDate = JsonConverters.fromJson(json['DeliveryDate'],'DateTime',context!);
        DeliveryDateSpecified = json['DeliveryDateSpecified'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'HousingTypeReference': JsonConverters.toJson(HousingTypeReference,'Reference',context!),
        'ConstructionBlockReference': JsonConverters.toJson(ConstructionBlockReference,'Reference',context!),
        'Code': Code,
        'Description': Description,
        'Address': JsonConverters.toJson(Address,'Address',context!),
        'RentalHouse': RentalHouse,
        'GuaranteeCertificateNumber': GuaranteeCertificateNumber,
        'Inactive': Inactive,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy,
        'ViewingDate': JsonConverters.toJson(ViewingDate,'DateTime',context!),
        'ViewingDateSpecified': ViewingDateSpecified,
        'DeliveryDate': JsonConverters.toJson(DeliveryDate,'DateTime',context!),
        'DeliveryDateSpecified': DeliveryDateSpecified
    };

    getTypeName() => "ConstructionNumber";
    TypeContext? context = _ctx;
}

class Document implements ICustomProperties, IConvertible
{
    String? ID;
    String? RootDocumentID;
    String? RegistrationprofileID;
    String? Title;
    String? FullTitle;
    String? Number;
    String? Version;
    String? ExternalNumber;
    String? ExternalVersion;
    String? InternalNumber;
    String? InternalInvoiceNumber;
    int? PersonID;
    int? RelationID;
    String? RelationTitle;
    int? ProjectID;
    String? ProjectTitle;
    String? Extension;
    DateTime? Date;
    int? CommentsCount;
    bool? HasComments;
    bool? HasPreview;
    String? ExtraField;
    bool? IsFavorite;
    String? DocumentcategoryText;
    int? FileSize;
    DateTime? FileDate;
    String? Hash;
    String? HashType;
    String? FileUrl;
    String? StandardDocumentUrl;
    bool? IsCorporateIdentity;
    String? UserTitle;
    bool? IsFrozen;
    int? InternalCompanyID;
    String? DirectUrl;
    bool? AllowDigitalSigningOnlyOnPrimaryVersions;
    bool? IsPrimaryVersion;
    String? FileExtension;
    Map<String,dynamic?>? CustomProperties;

    Document({this.ID,this.RootDocumentID,this.RegistrationprofileID,this.Title,this.FullTitle,this.Number,this.Version,this.ExternalNumber,this.ExternalVersion,this.InternalNumber,this.InternalInvoiceNumber,this.PersonID,this.RelationID,this.RelationTitle,this.ProjectID,this.ProjectTitle,this.Extension,this.Date,this.CommentsCount,this.HasComments,this.HasPreview,this.ExtraField,this.IsFavorite,this.DocumentcategoryText,this.FileSize,this.FileDate,this.Hash,this.HashType,this.FileUrl,this.StandardDocumentUrl,this.IsCorporateIdentity,this.UserTitle,this.IsFrozen,this.InternalCompanyID,this.DirectUrl,this.AllowDigitalSigningOnlyOnPrimaryVersions,this.IsPrimaryVersion,this.FileExtension,this.CustomProperties});
    Document.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ID = json['ID'];
        RootDocumentID = json['RootDocumentID'];
        RegistrationprofileID = json['RegistrationprofileID'];
        Title = json['Title'];
        FullTitle = json['FullTitle'];
        Number = json['Number'];
        Version = json['Version'];
        ExternalNumber = json['ExternalNumber'];
        ExternalVersion = json['ExternalVersion'];
        InternalNumber = json['InternalNumber'];
        InternalInvoiceNumber = json['InternalInvoiceNumber'];
        PersonID = json['PersonID'];
        RelationID = json['RelationID'];
        RelationTitle = json['RelationTitle'];
        ProjectID = json['ProjectID'];
        ProjectTitle = json['ProjectTitle'];
        Extension = json['Extension'];
        Date = JsonConverters.fromJson(json['Date'],'DateTime',context!);
        CommentsCount = json['CommentsCount'];
        HasComments = json['HasComments'];
        HasPreview = json['HasPreview'];
        ExtraField = json['ExtraField'];
        IsFavorite = json['IsFavorite'];
        DocumentcategoryText = json['DocumentcategoryText'];
        FileSize = json['FileSize'];
        FileDate = JsonConverters.fromJson(json['FileDate'],'DateTime',context!);
        Hash = json['Hash'];
        HashType = json['HashType'];
        FileUrl = json['FileUrl'];
        StandardDocumentUrl = json['StandardDocumentUrl'];
        IsCorporateIdentity = json['IsCorporateIdentity'];
        UserTitle = json['UserTitle'];
        IsFrozen = json['IsFrozen'];
        InternalCompanyID = json['InternalCompanyID'];
        DirectUrl = json['DirectUrl'];
        AllowDigitalSigningOnlyOnPrimaryVersions = json['AllowDigitalSigningOnlyOnPrimaryVersions'];
        IsPrimaryVersion = json['IsPrimaryVersion'];
        FileExtension = json['FileExtension'];
        CustomProperties = JsonConverters.fromJson(json['CustomProperties'],'Map<String,dynamic?>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ID': ID,
        'RootDocumentID': RootDocumentID,
        'RegistrationprofileID': RegistrationprofileID,
        'Title': Title,
        'FullTitle': FullTitle,
        'Number': Number,
        'Version': Version,
        'ExternalNumber': ExternalNumber,
        'ExternalVersion': ExternalVersion,
        'InternalNumber': InternalNumber,
        'InternalInvoiceNumber': InternalInvoiceNumber,
        'PersonID': PersonID,
        'RelationID': RelationID,
        'RelationTitle': RelationTitle,
        'ProjectID': ProjectID,
        'ProjectTitle': ProjectTitle,
        'Extension': Extension,
        'Date': JsonConverters.toJson(Date,'DateTime',context!),
        'CommentsCount': CommentsCount,
        'HasComments': HasComments,
        'HasPreview': HasPreview,
        'ExtraField': ExtraField,
        'IsFavorite': IsFavorite,
        'DocumentcategoryText': DocumentcategoryText,
        'FileSize': FileSize,
        'FileDate': JsonConverters.toJson(FileDate,'DateTime',context!),
        'Hash': Hash,
        'HashType': HashType,
        'FileUrl': FileUrl,
        'StandardDocumentUrl': StandardDocumentUrl,
        'IsCorporateIdentity': IsCorporateIdentity,
        'UserTitle': UserTitle,
        'IsFrozen': IsFrozen,
        'InternalCompanyID': InternalCompanyID,
        'DirectUrl': DirectUrl,
        'AllowDigitalSigningOnlyOnPrimaryVersions': AllowDigitalSigningOnlyOnPrimaryVersions,
        'IsPrimaryVersion': IsPrimaryVersion,
        'FileExtension': FileExtension,
        'CustomProperties': JsonConverters.toJson(CustomProperties,'Map<String,dynamic?>',context!)
    };

    getTypeName() => "Document";
    TypeContext? context = _ctx;
}

class Relation implements IConvertible
{
    String? GlobalID;
    String? NameLine1;
    String? NameLine2;
    Address? Address;
    MailingAddress? MailingAddress;
    String? Telephone;
    String? Mobile;
    String? Email;
    String? IBAN;
    String? BankAccountNumber;
    String? Website;
    bool? Inactive;
    List<CustomField>? CustomFields;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;

    Relation({this.GlobalID,this.NameLine1,this.NameLine2,this.Address,this.MailingAddress,this.Telephone,this.Mobile,this.Email,this.IBAN,this.BankAccountNumber,this.Website,this.Inactive,this.CustomFields,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy});
    Relation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        NameLine1 = json['NameLine1'];
        NameLine2 = json['NameLine2'];
        Address = JsonConverters.fromJson(json['Address'],'Address',context!);
        MailingAddress = JsonConverters.fromJson(json['MailingAddress'],'MailingAddress',context!);
        Telephone = json['Telephone'];
        Mobile = json['Mobile'];
        Email = json['Email'];
        IBAN = json['IBAN'];
        BankAccountNumber = json['BankAccountNumber'];
        Website = json['Website'];
        Inactive = json['Inactive'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'NameLine1': NameLine1,
        'NameLine2': NameLine2,
        'Address': JsonConverters.toJson(Address,'Address',context!),
        'MailingAddress': JsonConverters.toJson(MailingAddress,'MailingAddress',context!),
        'Telephone': Telephone,
        'Mobile': Mobile,
        'Email': Email,
        'IBAN': IBAN,
        'BankAccountNumber': BankAccountNumber,
        'Website': Website,
        'Inactive': Inactive,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy
    };

    getTypeName() => "Relation";
    TypeContext? context = _ctx;
}

class PurchaseContract implements IConvertible
{
    String? GlobalID;
    String? Code;
    String? Description;
    Reference? ProjectReference;
    String? ProductCode;
    Relation? Relation;
    bool? Inactive;
    List<CustomField>? CustomFields;
    DateTime? CreationDate;
    String? CreatedBy;
    DateTime? ModifiedDate;
    String? ModifiedBy;

    PurchaseContract({this.GlobalID,this.Code,this.Description,this.ProjectReference,this.ProductCode,this.Relation,this.Inactive,this.CustomFields,this.CreationDate,this.CreatedBy,this.ModifiedDate,this.ModifiedBy});
    PurchaseContract.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GlobalID = json['GlobalID'];
        Code = json['Code'];
        Description = json['Description'];
        ProjectReference = JsonConverters.fromJson(json['ProjectReference'],'Reference',context!);
        ProductCode = json['ProductCode'];
        Relation = JsonConverters.fromJson(json['Relation'],'Relation',context!);
        Inactive = json['Inactive'];
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        ModifiedBy = json['ModifiedBy'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GlobalID': GlobalID,
        'Code': Code,
        'Description': Description,
        'ProjectReference': JsonConverters.toJson(ProjectReference,'Reference',context!),
        'ProductCode': ProductCode,
        'Relation': JsonConverters.toJson(Relation,'Relation',context!),
        'Inactive': Inactive,
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'ModifiedBy': ModifiedBy
    };

    getTypeName() => "PurchaseContract";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'kpm_digiofficeapigateway.tbi.nl', types: <String, TypeInfo> {
    'Environment': TypeInfo(TypeOf.Class, create:() => Environment()),
    'Party': TypeInfo(TypeOf.Class, create:() => Party()),
    'Header': TypeInfo(TypeOf.Class, create:() => Header()),
    'Reference': TypeInfo(TypeOf.Class, create:() => Reference()),
    'Address': TypeInfo(TypeOf.Class, create:() => Address()),
    'MailingAddress': TypeInfo(TypeOf.Class, create:() => MailingAddress()),
    'Project': TypeInfo(TypeOf.Class, create:() => Project()),
    'List<CustomField>': TypeInfo(TypeOf.Class, create:() => <CustomField>[]),
    'CustomField': TypeInfo(TypeOf.Class, create:() => CustomField()),
    'ProjectResponseMessage': TypeInfo(TypeOf.Class, create:() => ProjectResponseMessage()),
    'List<HousingType>': TypeInfo(TypeOf.Class, create:() => <HousingType>[]),
    'HousingType': TypeInfo(TypeOf.Class, create:() => HousingType()),
    'List<ConstructionBlock>': TypeInfo(TypeOf.Class, create:() => <ConstructionBlock>[]),
    'ConstructionBlock': TypeInfo(TypeOf.Class, create:() => ConstructionBlock()),
    'List<ConstructionNumber>': TypeInfo(TypeOf.Class, create:() => <ConstructionNumber>[]),
    'ConstructionNumber': TypeInfo(TypeOf.Class, create:() => ConstructionNumber()),
    'List<Document>': TypeInfo(TypeOf.Class, create:() => <Document>[]),
    'Document': TypeInfo(TypeOf.Class, create:() => Document()),
    'List<PurchaseContract>': TypeInfo(TypeOf.Class, create:() => <PurchaseContract>[]),
    'PurchaseContract': TypeInfo(TypeOf.Class, create:() => PurchaseContract()),
    'ProjectRequestMessage': TypeInfo(TypeOf.Class, create:() => ProjectRequestMessage()),
    'ProcessProjectRequestMessage': TypeInfo(TypeOf.Class, create:() => ProcessProjectRequestMessage()),
    'Map<String,dynamic?>': TypeInfo(TypeOf.Class, create:() => Map<String,dynamic?>()),
    'Relation': TypeInfo(TypeOf.Class, create:() => Relation()),
});

Dart ProcessProjectRequestMessage DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /jsonl/reply/ProcessProjectRequestMessage HTTP/1.1 
Host: kpm_digiofficeapigateway.tbi.nl 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"InstanceId":"00000000-0000-0000-0000-000000000000","ProjectRequest":{"Header":{"MessageID":"String","Timestamp":"0001-01-01T00:00:00.0000000","Sender":{"Title":"String","Code":"String","Version":"String","Environment":{"Title":"String","Code":"String"}},"Recipient":{"Title":"String","Code":"String","Version":"String","Environment":{"Title":"String","Code":"String"}},"RequestMessageID":{}},"ProjectReference":{"GlobalID":"String","Title":"String"},"IncludeHousingTypes":false,"IncludeConstructionBlocks":false,"IncludeConstructionNumbers":false,"IncludeDocuments":false,"IncludePurchaseContracts":false}}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Header":{"MessageID":"String","Timestamp":"0001-01-01T00:00:00.0000000","Sender":{"Title":"String","Code":"String","Version":"String","Environment":{"Title":"String","Code":"String"}},"Recipient":{"Title":"String","Code":"String","Version":"String","Environment":{"Title":"String","Code":"String"}},"RequestMessageID":{}},"ProjectReference":{"GlobalID":"String","Title":"String"},"Project":{"GlobalID":"String","CreationDate":"0001-01-01T00:00:00.0000000","CreatedBy":"String","ModifiedDate":"0001-01-01T00:00:00.0000000","ModifiedBy":"String","Code":"String","Name":"String","Description1":"String","Description2":"String","Address":{"AddressLine1":"String","AddressLine2":"String","HouseNumber":"String","HouseNumberSuffix":"String","PostalCode":"String","City":"String","Country":{"GlobalID":"String","Title":"String"}},"MailingAddress":{"POBox":"String","PostalCode":"String","City":"String","Country":{"GlobalID":"String","Title":"String"}},"ProjectCategoryReference":{"GlobalID":"String","Title":"String"},"ProjectTypeReference":{"GlobalID":"String","Title":"String"},"ProjectStatusReference":{"GlobalID":"String","Title":"String"},"StartDate":"0001-01-01T00:00:00.0000000","EndDate":"0001-01-01T00:00:00.0000000","CompletionDate":"0001-01-01T00:00:00.0000000","Inactive":false,"Website":"String","IsTemplateProject":false,"CustomFields":[{"Name":"String","Value":"String"}]},"HousingTypes":[{"GlobalID":"String","ProjectReference":{"GlobalID":"String","Title":"String"},"Code":"String","Description":"String","CustomFields":[{"Name":"String","Value":"String"}],"CreationDate":"0001-01-01T00:00:00.0000000","CreatedBy":"String","ModifiedDate":"0001-01-01T00:00:00.0000000","ModifiedBy":"String"}],"ConstructionBlocks":[{"GlobalID":"String","ProjectReference":{"GlobalID":"String","Title":"String"},"Code":"String","Description":"String","CustomFields":[{"Name":"String","Value":"String"}],"CreationDate":"0001-01-01T00:00:00.0000000","CreatedBy":"String","ModifiedDate":"0001-01-01T00:00:00.0000000","ModifiedBy":"String"}],"ConstructionNumbers":[{"GlobalID":"String","ProjectReference":{"GlobalID":"String","Title":"String"},"HousingTypeReference":{"GlobalID":"String","Title":"String"},"ConstructionBlockReference":{"GlobalID":"String","Title":"String"},"Code":"String","Description":"String","Address":{"AddressLine1":"String","AddressLine2":"String","HouseNumber":"String","HouseNumberSuffix":"String","PostalCode":"String","City":"String","Country":{"GlobalID":"String","Title":"String"}},"RentalHouse":false,"GuaranteeCertificateNumber":"String","Inactive":false,"CustomFields":[{"Name":"String","Value":"String"}],"CreationDate":"0001-01-01T00:00:00.0000000","CreatedBy":"String","ModifiedDate":"0001-01-01T00:00:00.0000000","ModifiedBy":"String","ViewingDate":"0001-01-01T00:00:00.0000000","ViewingDateSpecified":false,"DeliveryDate":"0001-01-01T00:00:00.0000000","DeliveryDateSpecified":false}],"Documents":[{"GlobalID":"String","RootDocumentID":"String","Code":"String","Subject":"String","VersionNumber":"String","NewestVersion":false,"RelationReference":{"GlobalID":"String","Title":"String"},"DocumentTypeReference":{"GlobalID":"String","Title":"String"},"ProjectReference":{"GlobalID":"String","Title":"String"},"ConstructionBlockReference":{"GlobalID":"String","Title":"String"},"ConstructionNumberReference":{"GlobalID":"String","Title":"String"},"HousingTypeReference":{"GlobalID":"String","Title":"String"},"Floor":0,"FloorSpecified":false,"DeletedDate":"0001-01-01T00:00:00.0000000","DeletedDateSpecified":false,"File":{"Type":"String","Name":"String","Size":0,"Content":"String","ModifiedDate":"0001-01-01T00:00:00.0000000"},"CustomFields":[{"Name":"String","Value":"String"}],"CreationDate":"0001-01-01T00:00:00.0000000","CreatedBy":"String","ModifiedDate":"0001-01-01T00:00:00.0000000","ModifiedBy":"String"}],"PurchaseContracts":[{"GlobalID":"String","Code":"String","Description":"String","ProjectReference":{"GlobalID":"String","Title":"String"},"ProductCode":"String","Relation":{"GlobalID":"String","NameLine1":"String","NameLine2":"String","Address":{"AddressLine1":"String","AddressLine2":"String","HouseNumber":"String","HouseNumberSuffix":"String","PostalCode":"String","City":"String","Country":{"GlobalID":"String","Title":"String"}},"MailingAddress":{"POBox":"String","PostalCode":"String","City":"String","Country":{"GlobalID":"String","Title":"String"}},"Telephone":"String","Mobile":"String","Email":"String","IBAN":"String","BankAccountNumber":"String","Website":"String","Inactive":false,"CustomFields":[{"Name":"String","Value":"String"}],"CreationDate":"0001-01-01T00:00:00.0000000","CreatedBy":"String","ModifiedDate":"0001-01-01T00:00:00.0000000","ModifiedBy":"String"},"Inactive":false,"CustomFields":[{"Name":"String","Value":"String"}],"CreationDate":"0001-01-01T00:00:00.0000000","CreatedBy":"String","ModifiedDate":"0001-01-01T00:00:00.0000000","ModifiedBy":"String"}]}